using System;
//using OFFICECORE = Microsoft.Office.Core;
//using POWERPOINT = Microsoft.Office.Interop.PowerPoint;

namespace ConferenceSystem
{
	public class PptOperation
	{
//		#region=========基本的参数信息=======
//        POWERPOINT.Application objApp = null;
//        POWERPOINT.Presentation objPresSet = null;
//        POWERPOINT.SlideShowWindows objSSWs;
//        POWERPOINT.SlideShowTransition objSST;
//        POWERPOINT.SlideShowSettings objSSS;
//        POWERPOINT.SlideRange objSldRng;
//
//        bool bAssistantOn;
//        double pixperPoint = 0;
//        double offsetx = 0;
//        double offsety = 0;
//        #endregion
//		
//		public PptOperation ()
//		{
//		}
//		
//		
//		public string ToImage(string pptPath)
//		{
////			Application pptApplication = new Application();
////            Presentation pptPresentation = pptApplication.Presentations.Open("test.pptx", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
////
////            pptPresentation.Slides[1].Export("slide.png", "png", 320, 24);
//			
//			//Microsoft.Office.Core => Microsoft Office 12.0 Object Library
//			//Microsoft.Office.Interop.PowerPoint => Microsoft.Office.Interop.PowerPoint
//			POWERPOINT.Application App = new Microsoft.Office.Interop.PowerPoint.Application();
//			POWERPOINT.Presentation pres = App.Presentations.Open(FilePath, OFFICECORE.MsoTriState.msoTrue, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse);
//			pres.SaveAs(NewFolderPath, POWERPOINT.PpSaveAsFileType.ppSaveAsJPG, OFFICECORE.MsoTriState.msoFalse);
//			pres.Close();
//		}
//		
//		public void ConvertPpt(string tWordName, string tsaveFileName)
//        {
//            object WordName = (object)tWordName;
//            object saveFileName = (object)tsaveFileName;
//            PowerPoint.Application appClass = new PowerPoint.ApplicationClass();
//            Type wordType = appClass.GetType();
//            PowerPoint.Presentations pres = appClass.Presentations;
//          
//            //打开文件
//            Type docsType = pres.GetType();
//            //PowerPoint.Presentation pre = (PowerPoint.Presentation)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, pres, new Object[] { WordName, true, true });
//            PowerPoint.Presentation pre = appClass.Presentations.Open(tWordName, (Office.MsoTriState)Microsoft.Office.Core.MsoTriState.msoFalse, (Office.MsoTriState)Microsoft.Office.Core.MsoTriState.msoFalse, (Office.MsoTriState)Microsoft.Office.Core.MsoTriState.msoFalse);
//
//            // 转换格式，另存为
//            Type docType = pre.GetType();
//
//            docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, pre, new object[] { saveFileName, PowerPoint.PpSaveAsFileType.ppSaveAsHTML });
//            wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, appClass, null);
//            System.Diagnostics.Process.Start("iexplore.exe", tsaveFileName);
//        }
//		
//		#region===========操作方法==============
//        /// <summary>
//        /// 打开PPT文档并播放显示。
//        /// </summary>
//        /// <param name="filePath">PPT文件路径</param>
//        public void PPTOpen(string filePath)
//        {
//            //防止连续打开多个PPT程序.
//            if (this.objApp != null) { return; }
//            try
//            {
//                objApp = new POWERPOINT.Application();
//                //以非只读方式打开,方便操作结束后保存.
//                objPresSet = objApp.Presentations.Open(filePath, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse);
//
//                //Prevent Office Assistant from displaying alert messages:
//                bAssistantOn = objApp.Assistant.On;
//                objApp.Assistant.On = false;
//
//                objSSS = this.objPresSet.SlideShowSettings;
//                objSSS.Run();
//            }
//            catch (Exception ex)
//            {
//                this.objApp.Quit();
//            }
//        }
//
//        /// <summary>
//        /// 自动播放PPT文档.
//        /// </summary>
//        /// <param name="filePath">PPTy文件路径.</param>
//        /// <param name="playTime">翻页的时间间隔.【以秒为单位】</param>
//        public void PPTAuto(string filePath, int playTime)
//        {
//            //防止连续打开多个PPT程序.
//            if (this.objApp != null) { return; }
//
//            objApp = new POWERPOINT.Application();
//            objPresSet = objApp.Presentations.Open(filePath, OFFICECORE.MsoTriState.msoCTrue, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse);
//
//            // 自动播放的代码（开始）
//            int Slides = objPresSet.Slides.Count;
//            int[] SlideIdx = new int[Slides];
//            for (int i = 0; i < Slides; i++) { SlideIdx[i] = i + 1; };
//            objSldRng = objPresSet.Slides.Range(SlideIdx);
//            objSST = objSldRng.SlideShowTransition;
//            //设置翻页的时间.
//            objSST.AdvanceOnTime = OFFICECORE.MsoTriState.msoCTrue;
//            objSST.AdvanceTime = playTime;
//            //翻页时的特效!
//            objSST.EntryEffect = POWERPOINT.PpEntryEffect.ppEffectCircleOut;
//
//            //Prevent Office Assistant from displaying alert messages:
//            bAssistantOn = objApp.Assistant.On;
//            objApp.Assistant.On = false;
//
//            //Run the Slide show from slides 1 thru 3.
//            objSSS = objPresSet.SlideShowSettings;
//            objSSS.StartingSlide = 1;
//            objSSS.EndingSlide = Slides;
//            objSSS.Run();
//
//            //Wait for the slide show to end.
//            objSSWs = objApp.SlideShowWindows;
//            while (objSSWs.Count >= 1) System.Threading.Thread.Sleep(playTime * 100);
//
//            this.objPresSet.Close();
//            this.objApp.Quit();
//        }
//
//        /// <summary>
//        /// PPT下一页。
//        /// </summary>
//        public void NextSlide()
//        {
//            if (this.objApp != null)
//                this.objPresSet.SlideShowWindow.View.Next();
//        }
//        /// <summary>
//        /// PPT上一页。
//        /// </summary>
//        public void PreviousSlide()
//        {
//            if (this.objApp != null)
//                this.objPresSet.SlideShowWindow.View.Previous();
//        }
//
//        /// <summary>
//        /// 对当前的PPT页面进行图片插入操作。
//        /// </summary>
//        /// <param name="alImage">图片对象信息数组</param>
//        /// <param name="offsetx">插入图片距离左边长度</param>
//        /// <param name="pixperPoint">距离比例值</param>
//        /// <returns>是否添加成功！</returns>
//        public bool InsertToSlide(List<PPTOBJ> listObj)
//        {
//            bool InsertSlide = false;
//            if (this.objPresSet != null)
//            {
//                this.SlideParams();
//                int slipeint = objPresSet.SlideShowWindow.View.CurrentShowPosition;
//
//                foreach (PPTOBJ myobj in listObj)
//                {
//                    objPresSet.Slides[slipeint].Shapes.AddPicture(
//                         myobj.Path,           //图片路径
//                         OFFICECORE.MsoTriState.msoFalse,
//                         OFFICECORE.MsoTriState.msoTrue,
//                         (float)((myobj.X - this.offsetx) / this.pixperPoint),       //插入图片距离左边长度
//                         (float)(myobj.Y / this.pixperPoint),       //插入图片距离顶部高度
//                         (float)(myobj.Width / this.pixperPoint),   //插入图片的宽度
//                         (float)(myobj.Height / this.pixperPoint)   //插入图片的高度
//                      );
//                }
//                InsertSlide = true;
//            }
//            return InsertSlide;
//        }
//
//        /// <summary>
//        /// 计算InkCanvas画板上的偏移参数，与PPT上显示图片的参数。
//        /// 用于PPT加载图片时使用
//        /// </summary>
//        private void SlideParams()
//        {
//            double slideWidth = this.objPresSet.PageSetup.SlideWidth;
//            double slideHeight = this.objPresSet.PageSetup.SlideHeight;
//            double inkCanWidth = SystemParameters.PrimaryScreenWidth;//inkCan.ActualWidth;
//            double inkCanHeight = SystemParameters.PrimaryScreenHeight;//inkCan.ActualHeight ;
//
//            if ((slideWidth / slideHeight) > (inkCanWidth / inkCanHeight))
//            {
//                this.pixperPoint = inkCanHeight / slideHeight;
//                this.offsetx = 0;
//                this.offsety = (inkCanHeight - slideHeight * this.pixperPoint) / 2;
//            }
//            else
//            {
//                this.pixperPoint = inkCanHeight / slideHeight;
//                this.offsety = 0;
//                this.offsetx = (inkCanWidth - slideWidth * this.pixperPoint) / 2;
//            }
//        }
//        /// <summary>
//        /// 关闭PPT文档。
//        /// </summary>
//        public void PPTClose()
//        {
//            //装备PPT程序。
//            if (this.objPresSet != null)
//            {
//                //判断是否退出程序,可以不使用。
//                //objSSWs = objApp.SlideShowWindows;
//                //if (objSSWs.Count >= 1)
//                //{
//                    if (MessageBox.Show("是否保存修改的笔迹!", "提示", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
//                        this.objPresSet.Save();
//                //}
//                //this.objPresSet.Close();
//            }
//            if (this.objApp != null)
//                this.objApp.Quit();
//
//            GC.Collect();
//        }
//		#endregion
	}
}

